package com.lds.config.center.server.business.itemchange.service;

import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseBatchCreateRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseBatchDeleteRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseBatchUpdateRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseCreateRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseDeleteRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseGetByIdRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseGetByIdsRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseGetByKeyRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseListPageRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseListRequest;
import com.lds.config.center.common.model.itemchange.request.ItemChangeBaseUpdateRequest;
import com.lds.config.center.common.model.itemchange.response.ItemChangeBaseBatchCreateResponse;
import com.lds.config.center.common.model.itemchange.response.ItemChangeBaseBatchDeleteResponse;
import com.lds.config.center.common.model.itemchange.response.ItemChangeBaseBatchUpdateResponse;
import com.lds.config.center.common.model.itemchange.response.ItemChangeBaseDeleteResponse;
import com.lds.config.center.common.model.itemchange.response.ItemChangeBaseListResponse;
import com.lds.config.center.common.model.itemchange.response.ItemChangeBaseResponse;
import com.lds.config.center.server.business.itemchange.entity.ItemChange;
import com.lds.management.center.common.model.db.OrderBy;
import com.lds.management.center.common.model.db.PageResult;
import com.lds.management.center.common.model.dto.ResultDTO;


/**
 * 基础服务类
 *
 * @author lidongsheng
 * @since 2025-06-30
 */
public interface ItemChangeBaseService {
    /**
     * 创建
     */
    ResultDTO<ItemChangeBaseResponse> createItemChange(ItemChangeBaseCreateRequest request);

    /**
     * 批量创建
     */
    ResultDTO<ItemChangeBaseBatchCreateResponse> batchCreateItemChange(ItemChangeBaseBatchCreateRequest request);

    /**
     * 删除
     */
    ResultDTO<ItemChangeBaseDeleteResponse> deleteItemChange(ItemChangeBaseDeleteRequest request);

    /**
     * 批量删除
     */
    ResultDTO<ItemChangeBaseBatchDeleteResponse> batchDeleteItemChange(ItemChangeBaseBatchDeleteRequest request);

    /**
     * 更新
     */
    ResultDTO<ItemChangeBaseResponse> updateItemChange(ItemChangeBaseUpdateRequest request);

    /**
     * 批量更新
     */
    ResultDTO<ItemChangeBaseBatchUpdateResponse> batchUpdateItemChange(ItemChangeBaseBatchUpdateRequest request);

    /**
     * 根据ID查询
     */
    ResultDTO<ItemChangeBaseResponse> getItemChangeById(ItemChangeBaseGetByIdRequest request);

    /**
     * 根据ID集合查询
     */
    ResultDTO<ItemChangeBaseListResponse> getItemChangeByIds(ItemChangeBaseGetByIdsRequest request);

    /**
     * 根据业务主键查询
     */
    ItemChange getItemChangeByKey(ItemChangeBaseGetByKeyRequest request);

    /**
     * 查询
     */
    ResultDTO<ItemChangeBaseListResponse> listItemChange(ItemChangeBaseListRequest request);

    /**
     * 查询所有
     */
    ResultDTO<ItemChangeBaseListResponse> listAllItemChange(OrderBy orderBy);

    /**
     * 分页查询
     */
    ResultDTO<PageResult<ItemChangeBaseResponse>> listItemChangePage(ItemChangeBaseListPageRequest request);


    /***************************** 异步尝鲜 谨慎使用[性能提升10倍以上] start ******************************/

    /**
     * 异步批量创建
     */
    ResultDTO<ItemChangeBaseBatchCreateResponse> batchCreateItemChangeAsync(ItemChangeBaseBatchCreateRequest request);

    /**
     * 异步批量删除
     */
    ResultDTO<ItemChangeBaseBatchDeleteResponse> batchDeleteItemChangeAsync(ItemChangeBaseBatchDeleteRequest request);

    /**
     * 异步批量更新
     */
    ResultDTO<ItemChangeBaseBatchUpdateResponse> batchUpdateItemChangeAsync(ItemChangeBaseBatchUpdateRequest request);

    /***************************** 异步尝鲜 谨慎使用[性能提升10倍以上] end ******************************/
}